// app.js
var util = require('./utils/util.js') // 公用插件方法
var cache = require('./utils/cache.js') // 缓存方法
var http = require('./utils/http.js') // 请求接口
var map = require('./utils/map.js') // 位置
var router = require('./utils/router.js') // 路由
App({
  /**
   * 全局定义一些常用的方法
   */
  // 地图
  getPosition() {
    var that = this
    return new Promise(function (resolve, reject) {
      map.getPosition(function (e) {
        that.updateCache('city', e)  // 存储城市的id
        resolve(e)
      })
    })
  },
  // 提示    内容/位置/时间/图标
  showToast(text, position, duration, icon) {
    return util.showToast(text, position, duration, icon)
  },
  // post请求  路由/参数
  post(url, data) {
    return http.post(url, data)
  },
  // get 请求    路由/参数
  get(url, data) {
    return http.get(url, data)
  },
  // 设置缓存  变量名/参数
  updateCache(key, list) {
    return cache.updateCache(key, list)
  },
  // 读取  变量名
  fetchCache(key) {
    return cache.fetchCache(key)
  },
  // 清除缓存  变量名
  removeCache(key) {
    return cache.removeCache(key)
  },
  // 获取当前时间
  getTimestamp: function () {
    var tmp = Date.parse(new Date()).toString();
    tmp = tmp.substr(0, 10);
    return tmp;
  },
  // 计算价格
  money(A, B, method, digit) {
    return util.money(A, B, method, digit)
  },
  // api
  apiUrl() {
    return http.apiUrl
  },
  // 路由 
  gbRouter(url, isLogin = false, type = 'navigateTo') {
    return router.gbRouter(url, isLogin, type)
  },
  onLaunch() {
    // 获取城市信息
    // map.getPosition(function(e){
    //   console.log(e)
    //   cache.updateCache('city',e)  // 存储城市的id
    // });
    wx.getSystemInfo({
      success: e => {
        this.globalData.platform = e.platform
        this.globalData.StatusBar = e.statusBarHeight;
        let capsule = wx.getMenuButtonBoundingClientRect();
        if (capsule) {
          this.globalData.Custom = capsule;
          this.globalData.CustomBar = capsule.bottom + capsule.top - e.statusBarHeight;
        } else {
          this.globalData.CustomBar = e.statusBarHeight + 50;
        }
      }
    })
  },
  globalData: {
  }
})
